1. 토큰화 (Tokenization)

텍스트를 의미 있는 최소 단위 '토큰'으로 분절하는 첫 단계입니다.

대분류 소분류 주요 기법 설명 대표 라이브러리
단어 내부 분절 서브워드(Subword) WordPiece, BPE 자주 등장하는 글자 묶음으로 단어를 분해해 OOV 문제를 해결. HF Transformers
Byte-level BPE 바이트 단위로 처리해 모든 문자(이모지 등)에 강건. tiktoken (GPT)
SentencePiece 특정 도메인 데이터로 토크나이저를 쉽게 재학습 가능. sentencepiece
의미 단위 분절 형태소(Semantic Unit) MeCab, Okt 한국어의 조사/어미를 분해해 의미 단위를 보존. KoNLPy, khaiii
단어/공백 단어 분절 공백/구두점 기준으로 간단히 토큰화, 빠르고 직관적. NLTK, spaCy
문자/음절 char n-gram 한 글자 단위로 토큰화해 오탈자/신조어에 강함. scikit-learn
문장/문단 Sentence Split RAG/검색을 위해 문장 → 문단 단위로 잘라 인덱싱. pysbd, langchain

2. 벡터화 (Vectorization)

토큰을 단어의 의미를 고려하지 않고, 통계 정보(빈도, 유무 등)만을 이용해 벡터로 표현하는 방식입니다.

대분류 소분류 주요 기법 설명 대표 라이브러리
단순 카운팅 (Counting) 존재 유무 One-hot Encoding 단어의 존재 여부를 0과 1로만 표기. 개념 학습에 좋음. scikit-learn
등장 빈도 BoW 단어 순서를 무시하고 단어 출현 빈도로 문서를 표현. scikit-learn
가중치 부여 (Weighting) 중요도 TF-IDF 흔한 단어 가중치는 낮추고, 중요한 단어는 부각. 강력한 베이스라인. scikit-learn
검색 최적화 BM25 TF-IDF 확장형. 키워드 검색/RAG 리트리벌의 사실상 표준. rank-bm25
효율성 중심 해싱 HashingVectorizer 해시 함수로 고정 차원에 매핑. 메모리/속도 효율적. scikit-learn

3. 임베딩 (Embedding)

토큰을 단어의 의미와 문맥 정보를 압축한 밀집 벡터(Dense Vector)로 표현하는 방식입니다.

대분류 소분류 주요 기법 설명 대표 라이브러리
고정 임베딩 (Static) 단어 단위 Word2Vec, GloVe 단어의 의미를 고정된 벡터로 표현. 문맥 변화는 반영 불가. Gensim
서브워드 fastText 단어 내부(subword)를 학습해 OOV(신조어 등)에 강함. fastText, Gensim
문서 단위 Doc2Vec 문서 ID를 함께 학습하여 문서 전체 벡터를 획득. Gensim
문맥 임베딩 (Contextual) 단어 단위 BERT, RoBERTa 문맥에 따라 단어의 벡터가 동적으로 변함 (분류, QA, NER). HF Transformers
(Bi-directional) ELMo 양방향 LSTM 기반의 초기 문맥 임베딩 모델 (역사적 의미). AllenNLP
문장/문서 Sentence-BERT, e5 문장 전체의 의미를 하나의 벡터로 직접 임베딩 (RAG 검색). sentence-transformers
다국어 LaBSE, mSBERT 언어가 달라도 같은 의미라면 가까운 벡터로 매핑. TFHub, HF